package 动态规划.贪心算法;

/**
 * @description:
 * @author: ywk
 * @date: 2021-01-11
 */
public class 是否可以跳跃游戏 {

    static boolean canJump(int[] nums) {
        int n = nums.length;
        int farthest = 0;
        for (int i = 0; i < n - 1; i++) {
            // 不断计算能跳到的最远距离
            farthest = Math.max(farthest, i + nums[i]);
            // 可能碰到了 0，卡住跳不动了
            if (farthest <= i) return false;
        }
        return farthest >= n - 1;
    }

    public static void main(String[] args) {
        System.out.println(canJump(new int[]{0, 3, 1, 1, 4}));

        System.out.println(canJump(new int[]{3, 2, 1, 0, 4}));
    }
}
